﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using wdwp.Desktop.widgetLib.CommonTypes;

namespace wdwp.Desktop.Loader
{
    /// <summary>
    /// 위젯을 호스팅하고 위젯을 구동시키는 주 객체
    /// </summary>
    public class WidgetLoader
    {
        SettingsManager m_wdgtSetMngr;    //위젯 세팅 관리자 
        
        public WidgetLoader()
        {
            m_wdgtSetMngr = new SettingsManager();
        }

        /// <summary>
        /// 런처에서 넘겨받은 정보및 위젯별 세팅 로드
        /// </summary>
        /// <param name="strWdgtConfigFileName">런처에서 넘겨받은 loadSettings.data 파일경로</param>
        /// <returns>정상적으로 로드하면 true 아니면 예외발생 </returns>
        public bool loadWdgtSettings(string strWdgtConfigFileName)
        {
            try
            {
                string ConfigFName = strWdgtConfigFileName;

                //인자로 주어진 경로로 세팅파일을 읽어들여   
                sWidgetInfo wdgtInfo = new sWidgetInfo();
                object boxref = wdgtInfo as object;
                m_wdgtSetMngr.read(ConfigFName, ref boxref);

                //역 직렬화 한 후 로더의 세팅에 적용
                wdgtInfo = (sWidgetInfo)boxref;
                m_wdgtSetMngr.load(wdgtInfo);

                return true;

            }
            catch (Exception exc)
            {
                throw exc;
            }
             
        }

        /// <summary>
        /// 위젯별 세팅 저장 
        /// 정상적으로 저장되지 않으면 예외를 발생 
        /// </summary>
        public void saveWidgetSettings()
        {
            try
            {
                m_wdgtSetMngr.unload();
            }
            catch(Exception exc)
            {
                throw exc;
            }
        }
           
    }
}
